aboutsummaryrefslogtreecommitdiff
path: root/src/pages/board/[board].astro
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages/board/[board].astro')
-rw-r--r--src/pages/board/[board].astro26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/pages/board/[board].astro b/src/pages/board/[board].astro
new file mode 100644
index 0000000..2624fed
--- /dev/null
+++ b/src/pages/board/[board].astro
@@ -0,0 +1,26 @@
+---
+import Default from '../../layouts/Default.astro';
+import Thread from '../../components/Thread.svelte'
+import type Thread from '../../models/Thread';
+
+import { api } from '../../lib/api.ts';
+import { processThreadIn } from '../../lib/thread'
+
+const { board } = Astro.params;
+const data = await api('get', `board/${board}`);
+
+if(data.status === 404) return Astro.redirect('/404');
+
+const threads: Thread[] = await data.json();
+for(let thread of threads)
+ await processThreadIn(board, thread);
+---
+
+<Default>
+ <h1><a href="/boards"> {board} </a></h1>
+
+ {threads.map((thread) => (
+ <Thread thread={thread} board={board} />
+ ))}
+
+</Default>